package Tydzien4;


import java.io.Serializable;

import org.apache.commons.lang3.builder.ToStringBuilder;

public class Ksiazka implements Comparable<Ksiazka>, Serializable, Cloneable {
	private static final long serialVersionUID = -6422973455309063257L;
	
	private String tytul;
	public String getTytul() { return tytul;}
	
	private String autor;
	public String getAutor() { return autor;}
	
	private int rok_wydania;
	public int getRokWydania() { return rok_wydania;}
	
	private String wydawnictwo;
	public String getWydawnictwo() { return wydawnictwo;}
	
	private transient int ilosc_wypozyczen;
	public int getIloscWypozyczen() { return ilosc_wypozyczen;}
	public void Wypozycz() { ilosc_wypozyczen++; }
	
	public Ksiazka(String tytul, String autor, String wydawnictwo, int rok_wydania)
	{
		this.tytul = tytul;
		this.autor = autor;
		this.wydawnictwo = wydawnictwo;
		this.rok_wydania = rok_wydania;
		this.ilosc_wypozyczen = 0;
	}
	
	public String toString()
	{
		return new ToStringBuilder(this).
				append("tytul", tytul).
				append("autor", autor).
				append("wydawnictwo", wydawnictwo).
				append("rok_wydania", rok_wydania).
				toString();
	}
	
	@Override
	public int compareTo(Ksiazka arg0) {
		return toString().compareTo(arg0.toString());
	}
	
	@Override
	public boolean equals(Object arg0) {
		if(arg0 instanceof Ksiazka)
		{
			Ksiazka k = (Ksiazka) arg0;
			return ( tytul.equals(k.tytul) && autor.equals(k.autor) && rok_wydania == k.rok_wydania && wydawnictwo.equals(k.wydawnictwo) );
		}
		else
		{
			return super.equals(arg0);
		}
	}
	
	@Override
	protected Object clone() throws CloneNotSupportedException {
		return new Ksiazka(tytul, autor, wydawnictwo, rok_wydania);
	}
}
